4
תגובות

Traits - משתנים סטטיים

פתח OrelBeY ,
בעמוד הדוקומנטציה על Traits (המדהים, אגב) כתוב:
Static variables can be referred to in trait methods, but cannot be defined by the trait. Traits can, however, define static methods for the exhibiting class.

ניסיתי להגדיר משתנים סטטיים (ומאפיינים סטטיים) ב-Traits, וזה עבד לי מעולה. כנראה פספסתי משהו. מישהו יכול להסביר לי את זה בבקשה?

4 תשובות

avatar ענה iiddaannyy ב 03 למאי 2013 #

זה מדבר על משתנים סטטיים בתוך מתודות. לא על מאפייני מחלקה.

המסקנה ממה שהם כותבים היא שמשתנה סטטי בתוך מתודה ב-trait לא יהיה זהה בכל המחלקות שמשתמשות באותו trait.
אם תראה את הדוגמה שאחרי שני המשפטים שהבאת, תוכל לראות שמודפס פעמיים 1. במקום 1 ואז 2, כפי שאולי היינו מצפים משום שהמשתנה הוא סטטי.

אבל זה כבר מובן מאליו ברגע שאתה מבין ששימוש ב-trait הוא פשוט העתקה של תוכן ה-trait אל תוך המחלקה שלנו.

avatar ענה OrelBeY ב 03 למאי 2013 #

כן, את זה הבנתי. ההסבר שלהם על זה לא ממש לא ברור. תודה. -)

avatar ענה Michael ב 03 למאי 2013 #

אגב בד"כ נהוג לכנות משתנים בתוך קלאס כ-property, אז לרוב אם יכתבו variables כנראה לא יתייחסו למשתנים של הקלאס/טרייט/וואטאבר (כשהערך מדובר על oo כמובן)

avatar ענה OrelBeY ב 03 למאי 2013 #

הנה משהו שפספסתי. תודה לך. :-)